var express = require('express');
var router = express.Router();
var CODE = require('../../../common/code');
var retUtil = require('./util/retUtil');
var documentUtil = require('./util/documentUtil');
var orderUtil = require('./util/orderUtil');
var userUtil = require('./util/userUtil');
var sundryUtil = require('./util/sundryUtil');
var staticizeUtil = require('./util/staticizeUtil');
var CONFIG = require('../../../common/config');


router.get('/',function (req, res, next) {
    res.send('respond with a order resource');
});

/***
 * 更新订单支付状态(iOS)
 * @author 李强
 * @date 2017-11-21
 * 参数: device	6 字段为 一键秀 相关标记
 *              600 一键秀网页端
 *              610 一键秀 android 端
 *              620 一键秀 iOS 端
 *              630 一键秀 嵌入网页端
 *              640 一键秀微信端
 *              650 一键秀小程序端
 * 参数: userId	        用户唯一标识
 * 参数: orderId	        订单唯一标识
 * 参数: transactionId  IAP 支付交易标识, 如不存在传递空字符串
 * 参数: receiptData	    IAP 交易凭据, 如不存在传递空字符串
 * 参数: state          暂时约定如下   11 支付失败  12 支付成功
 * 返回结果: 详情见  http://114.55.172.253:7000/mock/11/yjx/v1/order/updateIAPOrderState_v1_0
 * {
    "success" : 1,                  // 0 标识请求失败, 1 标识请求成功
    "msg" : "成功",                 // 如请求失败, 则为失败原因
    "data" : {

    }
}
 * 测试地址: http://localhost:3000/yjx/v1/order/updateIAPOrderState_v1_0?userId=299188
 */
function updateIAPOrderState_v1_0(req, res, next) {
    var device = retUtil.numberFromReq(req, 'device');
    var userId = retUtil.numberFromReq(req,'userId');
    var orderId = retUtil.numberFromReq(req, 'orderId');
    var state = retUtil.numberFromReq(req, 'state');
    var transactionId = retUtil.stringFromReq(req,"transactionId");
    var receiptData = retUtil.stringFromReq(req,"receiptData");
    // 异常状态标识, 0 标识无异常, 1 标识有异常, 但前端通过缓存已解决, 2, 标识有异常, 前端通过缓存仍无法结局
    var exceptionType = retUtil.numberFromReq(req, 'exceptionType') || 0;
    // 注意: 从未购买过的用户, recipeData 为空, 所以只检查 用户 id,订单 id, 订单状态
    if(userId <=0 || orderId <= 0 || state <=0 ) {
        //异常状态处理
        orderUtil.reserveErrorState(userId, orderId, state, transactionId, receiptData,exceptionType, function(cacheErr){
            if(cacheErr) {
                console.log('/yjx/v1/user.js [updateIAPOrderState_v1_0] reserveErrorState err :'+cacheErr);
                return retUtil.ret_err_json(cacheErr, res);
            }
            return retUtil.ret_succ_json({}, res);
        });
    }
    // 正常状态处理
    else {
        orderUtil.reserveSuccessState(userId, orderId, state, transactionId, receiptData,exceptionType, function(error, realState){
            if(error) {
                console.log('/yjx/v1/user.js [updateIAPOrderState_v1_0] reserveSuccessState err :'+error);
                return retUtil.ret_err_json(error, res);
            }
            return retUtil.ret_succ_json({state:realState}, res);
        });
    }
}
router.get('/updateIAPOrderState_v1_0', updateIAPOrderState_v1_0);
router.post('/updateIAPOrderState_v1_0', updateIAPOrderState_v1_0);
//==========================================================================
/**
 * 获取订单支付参数
 * @author xc
 * @date 2017-11-20
 *
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 userId: 用户唯一标识
 * 参数 orderType: [待定]
 * 参数 orderId: 用户订单唯一标识
 * 参数 paymentPlatform: [预留]支付平台类型
 *
 * 返回值:
 * {
        "success" : 1,                  // 0 标识请求失败, 1 标识请求成功
        "msg" : "成功",                 // 如请求失败, 则为失败原因
        "data" : {

            "orderId" : 3546,
            "orderNo" : "QWERTYUIO",
            "orderFee" : 989000,        // 订单支付金额, 单位: 分
            "paymentPlatform" : 10,     // 支付平台, 待定
            "wechat" : {               // 微信支付相关参数如下
                "partnerId" : "10000100",
                "prepayId": "1101000000140415649af9fc314aa427",
                "package" : "Sign=WXPay",
                "nonceStr": "a462b76e7436e98e0ed6e13c64b4fd1c",
                "timeStamp": "1397527777",
                "sign": "582282D72DD2B03AD892830965F428CB16E7A256",
            },
            "alipay" : {
                "body":"对一笔交易的具体描述信息。如果是多种商品，请将商品描述字符串累加传给body。",
                "subject":"大乐透",
                "out_trade_no":"70501111111S001111119",
                "timeout_express":"90m",
                "total_amount":"一共花费了10元",
                "product_code":"QUICK_MSECURITY_PAY",
                "tips":"测试一笔支付",
            },
            "IAP" : {
                "productidentifier" : "00000001"
            }
        }
    }

 * 测试接口: http://test.itbour.com:3000/yjx/v1/order/getOrderPayParam_v1_0?device=610&userId=1&orderId=1&paymentPlatform=10
 */
function getOrderPayParam_v1_0(req,res,next){
    var device = retUtil.stringFromReq(req, 'device');
    if(!device) {
        return retUtil.ret_err_json(CODE.DEVICE_EMPTY,res);
    }
    var userId = retUtil.numberFromReq(req, 'userId');
    if(!userId) {
        return retUtil.ret_err_json(CODE.USER_ID_EMPTY,res);
    }

    var orderType = retUtil.numberFromReq(req, 'orderType')||10;// TODO

    var orderId = retUtil.numberFromReq(req, 'orderId');
    if(!orderId) {
        return retUtil.ret_err_json('订单ID为空',res);
    }

    var paymentPlatform = retUtil.numberFromReq(req, 'paymentPlatform');
    if(!paymentPlatform) {
        //return retUtil.ret_err_json('支付平台未指定',res);
    }

    orderUtil.getUnifiedOrderPayParam(device, userId, orderType, orderId, paymentPlatform, function(error, ret){
        if(error){
            console.log(error);
            return retUtil.ret_err_json(error,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/getOrderPayParam_v1_0', getOrderPayParam_v1_0);
router.post('/getOrderPayParam_v1_0', getOrderPayParam_v1_0);

//==========================================================================
/**
 * 获取订单支付状态
 * @author xc
 * @date 2017-11-21
 *
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 userId: 用户唯一标识
 * 参数 orderId: 用户订单唯一标识
 *
 * 返回值:
 * {
        "success" : 1,                  // 0 标识请求失败, 1 标识请求成功
        "msg" : "成功",                 // 如请求失败, 则为失败原因
        "data" : {
            "orderId" : 878,
            "orderNo" : "QWERTYUIO",
            "orderFee" : 890000,        // 订单金额, 单位: 分
            "orderState" : 12,          // 订单支付状态, 暂时约定 11支付失败, 12 支付成功
            "paymentPlatform" : 10,     // 订单支付方式, 同获取订单支付参数接口
            "thirdNo" : "qwrtyioodgh",  // 第三方平台支付订单号
        }
    }
 *
 * 测试接口: http://test.itbour.com:3000/yjx/v1/order/getOrderState_v1_0?device=610&userId=1&orderId=1
 */
function getOrderState_v1_0(req,res,next){
    var device = retUtil.stringFromReq(req, 'device');
    if(!device) {
        return retUtil.ret_err_json(CODE.DEVICE_EMPTY,res);
    }

    var userId = retUtil.numberFromReq(req, 'userId');
    if(!userId) {
        return retUtil.ret_err_json(CODE.USER_ID_EMPTY,res);
    }

    var orderId = retUtil.numberFromReq(req, 'orderId');
    if(!orderId) {
        return retUtil.ret_err_json('订单ID为空',res);
    }

    orderUtil.getOrderState_v1_0(device, userId, orderId, function(error, ret){
        if(error){
            console.log(error);
            return retUtil.ret_err_json(error,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/getOrderState_v1_0', getOrderState_v1_0);
router.post('/getOrderState_v1_0', getOrderState_v1_0);


/**
 * 获取预结算去水印订单信息
 * @author 李强
 * @date 2017-11-21
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 userId: 用户唯一标识
 * 参数 docId:  用户作品唯一标识
 * 参数 orderType:  订单类型标记去水印订单
 *返回值 : http://114.55.172.253:7000/mock/11/yjx/v1/order/getPreWatermarkOrderInfo_v1_0
 * 测试接口: http://localhost:3000/yjx/v1/order/getPreWatermarkOrderInfo_v1_0?userId=299188&docId=13&device=610&orderType=2
 */
function getPreWatermarkOrderInfo_v1_0(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var userId = retUtil.numberFromReq(req,"userId");
    var docId = retUtil.numberFromReq(req,"docId");
    var orderType = retUtil.numberFromReq(req,"orderType");
    if(orderType<=0 || docId<=0 || userId<=0){
        return retUtil.ret_err_json("参数错误",res);
    }
    orderUtil.getPreWatermarkOrderInfo_v1_0(userId,docId,orderType,function(err,result){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        var data = {};
        data.docId = result.docId;
        data.displayThumb = result.displayThumb || "";
        data.opType = result.opType;
        data.itemName = result.itemName;
        data.itemDesc = result.itemDesc;
        data.w = result.width;
        data.h = result.height;
        if(result.pricing==20){
            data.fee = result.unit_price;
            data.pts = result.unit_pts;
        }else{
            data.fee = result.prices;
            data.pts = result.unit_pts;
        }
        return retUtil.ret_succ_json(data,res);
    });
}
router.get('/getPreWatermarkOrderInfo_v1_0', getPreWatermarkOrderInfo_v1_0);
router.post('/getPreWatermarkOrderInfo_v1_0', getPreWatermarkOrderInfo_v1_0);




/**
 * 获取用户订单详情
 *
 * @author 毛凯
 * @date 2017-11-18
 * 参数: device	是 610  6 字段为 一键秀 相关标记
 *                  600 一键秀网页端
 *                  610 一键秀 android 端
 *                  620 一键秀 iOS 端
 *                  630 一键秀 嵌入网页端
 *                  640 一键秀微信端
 *                  650 一键秀小程序端
 * 参数:  userId	是 299188 用户唯一标识
 * 参数:  orderId	是 879   订单唯一标识
 * 返回值:  return 回调
 *              err 错误信息
 *              data 返回结果
 * 参见接口 ：http://114.55.172.253:7000/project/11/interface/api/139
 * 测试地址 ：http://localhost:3000/yjx/v1/order/getUserOrderDetail_v1_0?device=1&userId=299163&orderId=1
 **/
function getUserOrderDetail_v1_0 (req,res,next){
    var device = retUtil.numberFromReq(req,'device');
    var userId = retUtil.numberFromReq(req,'userId');
    var orderId = retUtil.numberFromReq(req,'orderId');
    if(userId<=0){
        return retUtil.ret_err_json('用户唯一标识无效',res);
    }
    if(orderId <= 0){
        return retUtil.ret_err_json('orderId参数错误',res);
    }
    orderUtil.getUserOrderDetail_v1_0(userId,orderId,function(err,data){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(data,res);
    })
}
router.get('/getUserOrderDetail_v1_0', getUserOrderDetail_v1_0);
router.post('/getUserOrderDetail_v1_0', getUserOrderDetail_v1_0);

/**
 * 创建去水印订单
 *
 * @author 毛凯
 * @date 2017-11-18
 *
 * device	是 610  6 字段为 一键秀 相关标记
 *                  600 一键秀网页端
 *                  610 一键秀 android 端
 *                  620 一键秀 iOS 端
 *                  630 一键秀 嵌入网页端
 *                  640 一键秀微信端
 *                  650 一键秀小程序端
 * userId	是 299188 用户唯一标识
 * docId	是 989 需要去水印的作品id
 * orderType是 2 固定传 2, 标记去水印订单
 * payType 是 支付方式：1现金支付，2积分支付
 *  注意: 此类型优先级较高, 当选择积分支付时, paymentPlatform 将会被强制指定为 100 (示界港积分支付), 默认为: 现金支付
 * paymentPlatform 是  10微信支付  20支付宝支付  30苹果内购
 * 返回结果
 *              result 返回结果
 *                      {
 *                           "success" : 1,                  // 0 标识请求失败, 1 标识请求成功
 *                           "msg" : "成功",                 // 如请求失败, 则为失败原因
 *                           "data" : {
 *                               "orderId" : 7893,           // 订单唯一标识
 *                               "orderNo" : "QWERTYUIOP"    // 一键秀订单号
 *                           }
 *                       }
 * 参见接口 ：http://114.55.172.253:7000/project/11/interface/api/35
 * 测试地址 ：http://localhost:3000/yjx/v1/order/createWatermarkOrder_v1_0?device=6&userId=299163&docId=1&orderType=2
 * 注：orderType固定传 2, 标记去水印订单
 **/
function createWatermarkOrder_v1_0 (req,res,next){
    var device = retUtil.numberFromReq(req,'device');
    var userId = retUtil.numberFromReq(req,'userId');
    var docId = retUtil.numberFromReq(req,'docId');
    var orderType = retUtil.numberFromReq(req,'orderType');
    var payType = retUtil.numberFromReq(req,'payType') || 1;
    var paymentPlatform = retUtil.numberFromReq(req,'paymentPlatform');
    if(userId<=0){
        return retUtil.ret_err_json('用户唯一标识无效',res);
    }
    if(docId <= 0){
        return retUtil.ret_err_json('docId参数错误',res);
    }
    if(orderType != 2){
        return retUtil.ret_err_json('orderType参数错误',res);
    }
    var paymentInfo = [10,20,30,100];//10微信支付  20支付宝支付  30苹果内购 100 (示界港积分支付)
    if(!paymentPlatform || paymentInfo.indexOf(paymentPlatform) < 0){
        return retUtil.ret_err_json('paymentPlatform参数错误',res);
    }
    orderUtil.createWatermarkOrder_v1_0(device,userId,docId,orderType,payType,paymentPlatform,function(err,data){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(data,res);
    })
}
router.get('/createWatermarkOrder_v1_0', createWatermarkOrder_v1_0);
router.post('/createWatermarkOrder_v1_0', createWatermarkOrder_v1_0);

/**
 * 获取 vip 商品列表_WEB_1_1 添加
 *
 * @author 毛凯
 * @date 2018-3-24
 *
 * device	是 610  6 字段为 一键秀 相关标记
 *                  600 一键秀网页端
 *                  610 一键秀 android 端
 *                  620 一键秀 iOS 端
 *                  630 一键秀 嵌入网页端
 *                  640 一键秀微信端
 *                  650 一键秀小程序端
 * 返回结果:
 * 参见接口 ：http://114.55.172.253:7000/project/11/interface/api/2244
 * 测试地址 ：http://localhost:3000/yjx/v1/order/getVipGoodsInfo_web_v1_1?device=6
 * 注：orderType固定传 2, 标记去水印订单
 **/
function getVipGoodsInfo_web_v1_1 (req,res,next){
    var device = retUtil.numberFromReq(req,'device');
    orderUtil.getVipGoodsInfo_web_v1_1(function(err,data){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(data,res);
    })
}
router.get('/getVipGoodsInfo_web_v1_1', getVipGoodsInfo_web_v1_1);
router.post('/getVipGoodsInfo_web_v1_1', getVipGoodsInfo_web_v1_1);


/**
 * 获取 vip 商品预支付订单信息_WEB_1_1
 * @author xc
 * @date 2018-03-24
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 id:           商品唯一标识
 * 参数 priceId:      商品套餐唯一标识
 * 参数 userId:       用户唯一标识
 * 参数 referralCode: 推荐码, 默认为空, 注意: 若推荐码非法则获取预支付信息失败
 * 参数 payType:      1只能用钱支付，2只能用积分支付，3[1+2]两种支付方式均可
 *                   默认与 priceId 对应的套餐所支持的方式为准, 若 套餐支持多种方式则以该参数为准,
 *                   若 payType 指定的支付方式 套餐不支持,返回失败
 * 接口定义: http://yapi.yijianxiu.com:7000/project/11/interface/api/2260
 * 测试地址: http://yapi.yijianxiu.com:7000/mock/11/yjx/order/getPreVipOrderInfo_web_v1_1
 */
function getPreVipOrderInfo_web_v1_1(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var id = retUtil.numberFromReq(req,"id");
    var priceId = retUtil.numberFromReq(req,"priceId");
    var userId = retUtil.numberFromReq(req,"userId");
    var referralCode = retUtil.stringFromReq(req,"referralCode");
    var payType = retUtil.numberFromReq(req,"payType");

    if(id<=0 || priceId<=0 || userId<=0 || payType<=0){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.getPreVipOrderInfo_web_v1_1(id, priceId, userId, referralCode, payType, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/getPreVipOrderInfo_web_v1_1', getPreVipOrderInfo_web_v1_1);
router.post('/getPreVipOrderInfo_web_v1_1', getPreVipOrderInfo_web_v1_1);

/**
 * 创建 vip 商品订单_WEB_1_1
 * @author xc
 * @date 2018-03-24
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 id:           vip 商品唯一标识
 * 参数 priceId:      商品套餐唯一标识
 * 参数 userId:       用户唯一标识
 * 参数 referralCode: 推荐码, 默认为空, 注意: 若推荐码非法则获取预支付信息失败
 * 参数 payType:      1只能用钱支付，2只能用积分支付，3[1+2]两种支付方式均可
 *                   默认与 priceId 对应的套餐所支持的方式为准, 若 套餐支持多种方式则以该参数为准,
 *                   若 payType 指定的支付方式 套餐不支持,返回失败
 * 参数 paymentPlatform: 预定订单现金支付的平台 10 微信支付, 20 支付宝支付, 20 苹果内购
 *                      注意: 此参数仅在 商品支持现金支付时有效, 默认为 10 微信支付
 * 接口定义: http://yapi.yijianxiu.com:7000/project/11/interface/api/2268
 * 测试地址: http://yapi.yijianxiu.com:7000/mock/11/yjx/order/createVipOrder_web_v1_1
 */
function createVipOrder_web_v1_1(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var id = retUtil.numberFromReq(req,"id");
    var priceId = retUtil.numberFromReq(req,"priceId");
    var userId = retUtil.numberFromReq(req,"userId");
    var referralCode = retUtil.stringFromReq(req,"referralCode");
    var payType = retUtil.numberFromReq(req,"payType");
    var paymentPlatform = retUtil.numberFromReq(req,"paymentPlatform");

    if(id<=0 || priceId<=0 || userId<=0 || payType<=0){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.createVipOrder_web_v1_1(device, id, priceId, userId, referralCode, payType, paymentPlatform, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/createVipOrder_web_v1_1', createVipOrder_web_v1_1);
router.post('/createVipOrder_web_v1_1', createVipOrder_web_v1_1);

/**
 * 使用积分支付订单_WEB_1_1
 * @author xc
 * @date 2018-03-26
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 userId:  用户唯一标识
 * 参数 orderId: 订单唯一标识
 * 接口定义: http://yapi.yijianxiu.com:7000/project/11/interface/api/2276
 * 测试地址: http://yapi.yijianxiu.com:7000/mock/11/yjx/v1/order/payOrderByPoints_web_v1_1
 */
function payOrderByPoints_web_v1_1(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var orderId = retUtil.numberFromReq(req,"orderId");
    var userId = retUtil.numberFromReq(req,"userId");

    if(orderId<=0 || userId<=0){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.payOrderByPoints_web_v1_1(device, userId, orderId, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret||{},res);
    });
}
router.get('/payOrderByPoints_web_v1_1', payOrderByPoints_web_v1_1);
router.post('/payOrderByPoints_web_v1_1', payOrderByPoints_web_v1_1);

/**
 * 根据订单号处理vip和充值订单(注:去水印订单不处理)
 * @author xc
 */
function procVipAndPtsOrder(req,res,next){

    var orderId = retUtil.numberFromReq(req,"orderId");
    var userId = retUtil.numberFromReq(req,"userId");
    var updOdrFlg = retUtil.numberFromReq(req,"updOdrFlg");
    if(orderId<=0 || userId<=0){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.procVipAndPtsOrder({userId:userId, orderId:orderId, updOdrFlg:updOdrFlg}, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}

router.get('/procVipAndPtsOrder', procVipAndPtsOrder);
router.post('/procVipAndPtsOrder', procVipAndPtsOrder);




/**
 * 获取秀米充值包商品列表_APP_1_6_D
 *
 * @author 毛凯
 * @date 2018-5-15
 *
 * device	是 610  6 字段为 一键秀 相关标记
 *                  600 一键秀网页端
 *                  610 一键秀 android 端
 *                  620 一键秀 iOS 端
 *                  630 一键秀 嵌入网页端
 *                  640 一键秀微信端
 *                  650 一键秀小程序端
 *  userId   是    用户的userId
 * 返回结果:
 * 参见接口 ：http://114.55.172.253:7000/project/11/interface/api/2244
 * 测试地址 ：http://localhost:3000/yjx/v1/order/getRechargeXMItems_app_v1_6
 * 注：orderType固定传 2, 标记去水印订单
 **/
function getRechargeXMItems_app_v1_6 (req,res,next){
    var device = retUtil.numberFromReq(req,'device');
    var userId = retUtil.numberFromReq(req,'userId');
    if(!device || device<=0 ||  !userId ||userId <=0){
        return retUtil.ret_err_json("参数有误",res);
    }
    // 如果有缓存, 优先使用缓存
    var uri = '/yjx/v1/order/getRechargeXMItems_app_v1_6';
    var para = {
        device : device
    };

    staticizeUtil.getCacheDataByRedis(uri, para, function (error, content) {
        if(content && CONFIG.DEBUG !== 1) {
            return retUtil.ret_succ_json(content, res);
        }
        orderUtil.getRechargeXMItems_app_v1_6(function(err,data){
            if(err){
                return retUtil.ret_err_json(err,res);
            }
            // 缓存至 redis
            staticizeUtil.recordDataByRedis(uri, para, data);
            return retUtil.ret_succ_json(data, res);
        });
    });
}
router.get('/getRechargeXMItems_app_v1_6', getRechargeXMItems_app_v1_6);
router.post('/getRechargeXMItems_app_v1_6', getRechargeXMItems_app_v1_6);


/**
 * 获取预结算秀米充值订单信息_APP_1_6_D
 * @author 毛凯
 * @date 2018-05-15
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 id:           vip 商品唯一标识
 * 参数 priceId:      商品套餐唯一标识
 * 参数 userId:       用户唯一标识
 * 参数 referralCode: 推荐码, 默认为空, 注意: 若推荐码非法则获取预支付信息失败
 * 接口定义: http://yapi.yijianxiu.com:7000/project/11/interface/api/2260
 * 测试地址: http://yapi.yijianxiu.com:7000/mock/11/yjx/order/getPreRechargeOrderInfo_app_v1_6
 */
function getPreRechargeOrderInfo_app_v1_6(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var id = retUtil.numberFromReq(req,"id");
    var priceId = retUtil.numberFromReq(req,"priceId");
    var userId = retUtil.numberFromReq(req,"userId");
    var referralCode = retUtil.stringFromReq(req,"referralCode");

    if(id<=0 || priceId<=0 || userId<=0){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.getPreRechargeOrderInfo_app_v1_6(id, priceId, userId, referralCode, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/getPreRechargeOrderInfo_app_v1_6', getPreRechargeOrderInfo_app_v1_6);
router.post('/getPreRechargeOrderInfo_app_v1_6', getPreRechargeOrderInfo_app_v1_6);



/**
 * 创建秀米充值订单_APP_1_6_D
 * @author 毛凯
 * @date 2018-05-15
 * 参数 device: 6 字段为 一键秀 相关标记
 *             600 一键秀网页端
 *             610 一键秀 android 端
 *             620 一键秀 iOS 端
 *             630 一键秀 嵌入网页端
 *             640 一键秀微信端
 *             650 一键秀小程序端
 * 参数 id:            商品唯一标识
 * 参数 priceId:      商品套餐唯一标识
 * 参数 userId:       用户唯一标识
 * 参数 referralCode: 推荐码, 默认为空, 注意: 若推荐码非法则获取预支付信息失败
 * 参数 paymentPlatform: 预定订单现金支付的平台 10 微信支付, 20 支付宝支付, 20 苹果内购
 *                      注意: 此参数仅在 商品支持现金支付时有效, 默认为 10 微信支付
 * 接口定义: http://yapi.yijianxiu.com:7000/project/11/interface/api/2268
 * 测试地址: http://yapi.yijianxiu.com:7000/mock/11/yjx/order/createRechargeXMOrder_app_v1_6
 */
function createRechargeXMOrder_app_v1_6(req,res,next){
    var device = retUtil.numberFromReq(req,"device");
    var id = retUtil.numberFromReq(req,"id");
    var priceId = retUtil.numberFromReq(req,"priceId");
    var userId = retUtil.numberFromReq(req,"userId");
    var referralCode = retUtil.stringFromReq(req,"referralCode");
    var paymentPlatform = retUtil.numberFromReq(req,"paymentPlatform");

    if(id<=0 || priceId<=0 || userId<=0 ){
        return retUtil.ret_err_json("参数错误",res);
    }

    orderUtil.createRechargeXMOrder_app_v1_6(device, id, priceId, userId, referralCode,paymentPlatform, function(err,ret){
        if(err){
            return retUtil.ret_err_json(err,res);
        }
        return retUtil.ret_succ_json(ret,res);
    });
}
router.get('/createRechargeXMOrder_app_v1_6', createRechargeXMOrder_app_v1_6);
router.post('/createRechargeXMOrder_app_v1_6', createRechargeXMOrder_app_v1_6);


//==========================================================================
module.exports = router;